const arr = [
    {
        age:12,
        money:21,
        id:122
    },
    {
        age:20,
        money:20,
        id:22
    }
]

/**
 * 
 * @param {object[]} arr 需要计算合并的对象数组
 * @param {string[]} list 需要合并的项 字符串数组
 * @param {object} specify 指定额外添加项 可选
 * @returns 合并值后的对象
 */
function marge(arr,list,specify){
    let initial = specify || {}
    for(let v of list){
        initial[v] = 0
    }
    const newArr = arr.reduce((acc,item)=>{
        list.forEach(v=>{
            acc[v] += item[v]
        })
        return acc
    },initial)
    return newArr
}

console.log(marge(arr,['age','money'],{total:'合计'})); // {age:32,money:41}

